約 2,891,231 件
https://w.atwiki.jp/shunshun_bad/pages/14.html
ここでは有名なMinecraftのシステムMODを紹介します 前提MOD MinecraftForge MODプレイに必須といえるほど大人気、有名な前提、補助MOD。 非常に多くのMODに必要。 Fabric Minecraft1.14以降用に作られたmodloader。 バニラのLauncherやMultiMCに対応しており、Forgeのように .exeと.jarのインストーラーがある。 レシピブック Just Enough Items 通称:JEI。ゲーム内でアイテムとレシピを確認できるMOD。 バージョン ~1.16.2 ナビゲーションマップ VoxelMap 地形表示は勿論の事、Mob索敵機能や空洞マップ機能・ ウェイポイント機能等も持つ高性能Minimap MOD。 バージョン ~1.16.3 JourneyMap ゲーム内Mapとインターネットブラウザ (Firefox、Chrome、Safari、IE)を用いたMapを追加するMOD。 ペットや馬、家畜などのMOBの向いてる方角が見える。 またMapのGUIを変更できるなど凝った作りになっている。 バージョン~1.15.2 FPS向上・負荷軽減 OptiFine フォグ発生距離等Video Settingsに 様々な設定を追加する描画設定拡張・軽量化MOD。 水の透明度を上げたり、朝と夜を切り替えたりもできる。 32x32以上のHDテクスチャの導入の為にも利用可能。 1.10.2版よりEntityのモデルをカスタマイズする機能が追加された。 バージョン ~1.16.3 BetterFPS Minecraft内部のアルゴリズムを変更して、FPSを向上させる。 バニラにインストールすることができ、 【MinecraftForge】にも対応している。 バージョン:~1.12.2 総合系MOD XRay ブロックの透過MOD。Xキーを押すと地中の鉱石を明るさ最大で 透視できる。【MinecraftForge】は不要で共存も可能。 こんな感じ↓ インベントリ・クラフト画面 Inventory Tweaks Rキーで持ち物を整理したり、Wキー+クリックでクラフトエリアに アイテムを送ったり、種や道具などが無くなった際に持ち物に 予備があれば自動で補充する。他にも様々な機能がある。 imageプラグインエラー ご指定のURLはサポートしていません。png, jpg, gif などの画像URLを指定してください。 一括破壊・効率化等 一括破壊系MOD CutAll(斧/原木/onoffはCキー)、MineAll(つるはし/鉱石/ onoffはMキー)、DigAll(シャベル/土砂/onoffはGキー)の3種類があり、 それぞれ個別に導入可能。modsフォルダに置くだけで導入できる。 一括破壊系の中では最も高性能で、Configファイルから設定変更すれば 他MODで追加されたツールにも一括破壊機能を付与し、また他MODで 追加された木材/石材/土砂も一括破壊の対象に含む事ができる。 導入初期の状態ではOffになっているが、葉ブロックも一緒に 一瞬で破壊する機能や、MineAllやDigAllにも一括採掘した ブロックを採掘と同時に自動回収する機能を持たせる事も可能。
https://w.atwiki.jp/arma3/pages/41.html
■Mod・Addon制作 編集中 かなり役立ちそうなリンク Wolfsburg Editing Bureau ArmedAssault Addon, Modeling制作関係のドキュメント このサイトではWolfsburgさんが制作された数々の優れたMod・Addonの制作過程などがアップされています。とても参考になるので他のページも見てみるといいでしょう。 この方は日本のModの中でも大規模なJSDFModにも関わっておられます。そちらも様々な優れた作品を輩出しているので、興味があればご覧になってはどうでしょうか。
https://w.atwiki.jp/wot_sengiken/pages/89.html
J1mB0 s Crosshair Mod リロード時間や、自走砲の砲弾の飛翔時間を表示する。 J1mB0's Crosshair Mod機能 入手方法 導入方法 注意事項 使用イメージ コメント 機能 砲弾のリロード時間・残リロード時間を秒で表示。 自走砲の砲弾の飛翔時間を秒で表示。 無砲塔車両の射界を表示。 デバッグパネル(画面上部のping等の表示)に、時計を追加。 入手方法 EUフォーラム - J1mB0 s Crosshair Mod Mirror 01(Curse)からDLしたファイルはフォルダツリーの構造が分かりにくいため、Mirror 02(MediaFire)からのDLを推奨。 当wikiの紹介はMirror 02(MediaFire)からDLしたファイルを基準としているため、Mirror 01(Curse)からDLした場合は適宜読み替える事。 ※Mirror 01(Curse)からDLした場合、"gui\scaleform"フォルダ内の"crosshair_sniper.swf"が欠落しているため、各自で"Options"フォルダからコピーする必要がある。(2014-08-24 18 30時点) 導入方法 解凍したファイルを、res_modsフォルダにコピーする。 自走砲視点以外のレティクル表示の変更は、"optional\aim"フォルダにある"crosshair_sniper.swf"を"res_mods\0.*.*\gui\scaleform"フォルダ内のものに上書きすることで行う。 自走砲視点でのレティクル表示の変更は、"optional\arty"フォルダ内の"crosshair_panel_strategic.swf"を"res_mods\gui\scaleform"内のものに上書きすることで行う。 発砲時の振動を抑制する機能とズーム機能とは、両方とも"avatar_input_handler.xml"ファイルで指定しているため、"optional\xml"フォルダ内の、いずれかを使用すること。デフォルトではズームも振動抑制も無効になっている。 注意事項 時計表示がXVMの与ダメ履歴表示と重なる場合は、XVM側の設定で与ダメ履歴の表示位置を変更すること。 使用イメージ コメント 色々とダウンロードする項目があるのですが、どれをダウンロードすればいいですか? 解凍したらどこに解凍したファイルを入れたらいいですか?後、いじらなきゃいけない項目はありますか? 回答お願いします -- (@@あ) 2014-04-06 19 19 35 作者がフォーラムに記載している説明を理解できないのであれば、MODには手を出さない方がよろしいかと存じ上げます。 -- (YawChang) 2014-04-13 07 57 04 飛翔時間のサイトが1.36からなくなりましたが禁止MODにでもなったんでしょうか? -- (名無しさん) 2014-04-13 04 21 53 飛翔時間付きのパネルが無くなった理由は、作者が フォーラム で「弾速等に変更が入り、正確な値を表示できないため」と記載しています。 -- (YawChang) 2014-04-13 07 57 26 作者がフォーラムに記載している説明を理解できないのであれば、MODには手を出さない方がよろしいかと存じ上げます。 ならば、こういったサイト自体がいらなくなると思いますよ。 質問にたいして必ず”質問する事自体”を否定する方がでますが、他の人の迷惑なので、そのような子供じみた天の邪鬼な態度は止めていただきたいですね 誰しも、必ず分からない事はあるので、自分が知っているからと言って、分かっていないのを悪いとするを前提は、自分勝手な態度でしょう。 -- (名無しさん) 2014-08-11 17 17 20 当方も、ファイルのコピー方法やGoogle翻訳・同検索の使い方の様な初歩的な内容を一から十まで説明する気はありません。 ある程度は自身で調べた方が、ご自身のリテラシの向上にも繋がりますよ。 私も、「当wikiは貴方には不要である」と存じ上げます。 -- (YawChang) 2014-08-11 17 25 13 "optional\aim"というフォルダが出てこないのですが、どうすればよいですか? -- (KIIIIImax) 2014-08-24 17 52 49 Mirror 01(Curse)からDLしたファイルはフォルダツリーの構造が異なっているため、Mirror 02(MediaFire)からDLしたファイルの使用をお奨めします。 -- (YawChang) 2014-08-24 18 47 04 Mirror 02からダウンロードしたら、modが反映されませんでした。Mirror 01でダウンロードしたものは削除したのですが、 なぜでしょうか? -- (K) 2014-08-25 15 44 11 DLしたファイルが、"J1mB0s Crosshair Mod v1.41.zip"であるか確認してください。 "J1mB0s XVM Config v5.3.3 Test 1.zip"だった場合は、照準MODではなくXVMをDLしています。 照準MODをDLし直しましょう。 -- (YawChang) 2014-08-25 15 56 41 導入方法通りやったら無事instできました。aimの見本(artyはあり)が元から付いていると更に便利ですね。 ありがとうございました。 -- (taiki20021120) 2014-10-22 22 51 55 個人的には導入方法の[1]の表記が分かりにくかったので、替えてみてはどうでしょうか 例)解凍して出来た「res_mods」フォルダを「World_of_Tanks」フォルダの中の「res_mods」に上書きする。 -- (名無しさん) 2014-12-10 09 44 45 前のコメントにもありますがやっぱり飛翔時間は表示できないのでしょうか? Download (MediaFire)からいつもDLしていますが表示できないのであきらめていましたが、自走を使う時はやはり参考にしたいです。 -- (名無しさん) 2015-04-09 13 25 31 飛翔時間の計算は正確さに欠けるため機能を削除したと作者の方が述べています -- (名無しさん) 2015-05-16 16 18 25 optionalフォルダってどこにあるんですか? -- (名無しさん) 2015-07-24 13 32 41 YawChang何様wwww -- (名無しさん) 2015-12-20 22 12 42 0.9.13 で同じ導入方法をしても できません -- (名無しさん) 2016-01-16 21 49 03 こうしてただ廃墟が残り、俺様がルールだと大言した輩は無責任に立ち去りましたとさ -- (名無しさん) 2018-11-23 12 46 51 名前 コメント すべてのコメントを見る
https://w.atwiki.jp/akasatanahama/pages/135.html
概要 MinecraftForgeのイベント機能を利用して既存の処理に追加動作を施す。 2017/6/14 全体を確認し、修正や変更を行いました。 仕組み 今までMinecraft内のソースを見てみて、「ForgeHooks」や「EVENT_BUS」という記述を見たことはあるだろうか。 例えば、EntityLivingBase/onUpdateのメソッドを見てみよう。 public void onUpdate() { if (ForgeHooks.onLivingUpdate(this)) return; super.onUpdate(); /* 略 */ } /* 略 */ このように、Forgeがシステムを書き換えてイベントを起こしている場所がある。 ここで、@SubscribeEventのアノテーションを付け、適切な処理をしてあるメソッドが呼ばれる。 クラス書き換えと違って使えるものは限られるものの、競合が起きにくくかつ実装しやすい手段である。 ソースコード AluminiumMod.java package tutorial.aluminiummod; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.eventhandler.SubscribeEvent; import net.minecraft.block.Block; import net.minecraft.entity.Entity; import net.minecraft.entity.monster.EntityCreeper; import net.minecraft.entity.monster.EntityIronGolem; import net.minecraft.entity.monster.EntityMob; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.init.Items; import net.minecraft.util.DamageSource; import net.minecraft.world.ChunkPosition; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.living.LivingEvent; import net.minecraftforge.event.entity.living.LivingHurtEvent; import net.minecraftforge.event.entity.player.AttackEntityEvent; import net.minecraftforge.event.world.BlockEvent; import net.minecraftforge.event.world.ExplosionEvent; import java.util.Iterator; @Mod(modid = "AluminiumMod", name = "Aluminium Mod", version = "1.0.0") public class AluminiumMod { @EventHandler public void preInit(FMLPreInitializationEvent event) { // Event処理を記述しているクラスをForgeに登録する。 // Forgeのイベントを受け取る。 MinecraftForge.EVENT_BUS.register(this); // FMLのイベントを受け取りたい場合は以下のように追加で登録する。 //FMLCommonHandler.instance().bus().register(this); } /** EntityLivingBaseがダメージを負った時のイベント。 */ @SubscribeEvent public void onLivingHurt(LivingHurtEvent event) { // プレイヤーがアイアンゴーレムに対して攻撃した時、プレイヤーに同量のダメージを与える。 Entity sourceEntity = event.source.getEntity(); if (event.entityLiving instanceof EntityIronGolem sourceEntity != null sourceEntity instanceof EntityPlayer) sourceEntity.attackEntityFrom(DamageSource.causeMobDamage(event.entityLiving), event.ammount); } /** プレイヤーがEntityを攻撃した時のイベント。 */ @SubscribeEvent public void onPlayerAttackEntity(AttackEntityEvent event) { // ダイヤモンドを持っていたら、HPをハート10個分回復する。 if (event.entityPlayer.getHeldItem() != null event.entityPlayer.getHeldItem().getItem() == Items.diamond) event.entityPlayer.heal(20); } /** EntityLivingBaseが更新される時のイベント。 */ @SubscribeEvent public void onLivingUpdate(LivingEvent.LivingUpdateEvent event) { // クリーパーなら雷雨時に巨匠化させる。 if (event.entityLiving instanceof EntityCreeper event.entityLiving.worldObj.isThundering()) event.entityLiving.getDataWatcher().updateObject(17, (byte) 1); } /** 爆発が起こった時のイベント。 */ @SubscribeEvent public void onExplosionDetonate(ExplosionEvent.Detonate event) { System.out.println("onExplosionDetonate"); // クリーパーが起こした爆発なら、EntityMob継承のEntityを全て爆発対象から除外する。(ダメージやノックバックがなくなる。) if (event.explosion.exploder != null event.explosion.exploder instanceof EntityCreeper) { Iterator Entity iterator = event.getAffectedEntities().iterator(); while (iterator.hasNext()) { if (iterator.next() instanceof EntityMob) iterator.remove(); } } // ブロック破壊と炎上があるなら、氷と氷塊を破壊対象から除外する。 if (event.explosion.isSmoking event.explosion.isFlaming) { Iterator ChunkPosition iterator = event.getAffectedBlocks().iterator(); while (iterator.hasNext()) { ChunkPosition position = iterator.next(); Block block = event.world.getBlock(position.chunkPosX, position.chunkPosY, position.chunkPosZ); if (block == Blocks.ice || block == Blocks.packed_ice) iterator.remove(); } } } /** プレイヤーがブロックを設置した時のイベント。 */ @SubscribeEvent public void onPlayerBlockPlace(BlockEvent.PlaceEvent event) { // 土にカーソルを合わせてダイヤモンドブロックを置こうとしたらキャンセルする。 if (event.placedBlock == Blocks.diamond_block event.placedAgainst == Blocks.dirt) event.setCanceled(true); } } 解説 EventBus イベントを管理するためのクラス。 ForgeとFMLが別でインスタンスを持っているため、利用したいイベントのパッケージを確認して対応したものに登録する。 このチュートリアルではForgeのものしか使っていないが、FMLにもTickEventやKeyInputEventなど多くのイベントが用意されている。 void register(Object target) イベントを処理するメソッドがあるクラスのインスタンスを渡す。 このクラス内にある、@SubscribeEventがついており引数がEventを継承するクラス一つのみのメソッドが、イベントリスナーとして登録される。 Event Minecraft内にフックされているイベントの元クラス。 これを継承したクラスがインスタンス化され、イベントが発生する。 親子関係があるイベントでは、親クラスを引数とするメソッドは、その全ての子クラスのイベントを受け取る。 例:ExplosionEventを引数とするメソッドはExplosionEvent.StartとExplosionEvent.Detonateの双方のイベントを受け取る。(一度の爆発につき二回呼ばれる。) void setResult(Result value) Eventに@HasResultがついている場合、これを利用するとフック元の残りの動作をキャンセルしたり別のものにしたりできる。 setCanseled(boolean cansel) Eventに@Canselableがついている場合、ここにtrueを入れるとフック元の残りの動作をなくせる。 LivingHurtEvent EntityLivingBaseを継承したEntityがダメージを負った時のイベント。 DamageSource source ダメージの種類や性質を持つクラス。 float ammount ダメージ量 EntityLivingBase entityLiving 親クラスであるLivingEventで定義。 LivingHurtEventの場合はダメージを受けたEntity。 AttackEntityEvent プレイヤーがEntityを攻撃した時のイベント。 Entity target 攻撃対象のEntity。 EntityPlayer entityPlayer 親クラスであるPlayerEventで定義。 攻撃したプレイヤー。 LivingUpdateEvent EntityLivingBaseを継承したEntityが更新される時のイベント。 EntityLivingBase.onUpdate()の最初で発生している。 EntityLivingBase entityLiving 親クラスであるLivingEventで定義。 LivingUpdateEventの場合は更新されるEntity。 Detonate ExplosionEventの子クラス。 爆発が起こった時のイベント。 ExplosionEventの別の子クラスであるStartは爆発処理の開始時だが、こちらは影響対象のリストアップとその処理の間で発生する。 そのため、影響対象の操作が可能となる。 List ChunkPosition getAffectedBlocks() 爆発の影響を受けるブロックのリストを返す。 Explosionのインスタンスから直接取得しても同じ。 List Entity getAffectedEntities() 爆発の影響を受けるEntityのリストを返す。 操作すると、爆発処理(ダメージや移動)に反映される。 Explosionはインスタンス変数として持っていないが、DetonateがentityListとして保持している。 World world 親クラスであるExplosionEventで定義。 爆発の発生したWorldのインスタンス。 Explosion explosion 親クラスであるExplosionEventで定義。 爆発の処理を行うクラス。 性質などをインスタンス変数として持っている。 boolean isSmoking 煙パーティクルを発生させるか。 ブロックの破壊もこれで管理されている。 boolean isFlaming 炎を発生させるか。 PlaceEvent プレイヤーがブロックを設置した時のイベント。 実際の設置処理は一通り終わっているので、座標とWorldからは設置されたブロックを得られる。 EntityPlayer player ブロックを設置したプレイヤー。 ItemStack itemInHand プレイヤーが手に持っているItemStackのインスタンス。 ブロック設置の処理を行う前の状態になっている。 BlockSnapshot blockSnapshot ブロック置き換え処理の途中で、置き換え前のブロックを一時的に保持するために使われている。 置き換えられたブロック(通常は空気)を得たい場合はこれを利用する。 また、座標やディメンションIDなども得られる。 Block placedBlock 設置されたブロック。 Block placedAgainst 設置の際に視線の先にあった(設置の支えとなった)ブロック。 コメント この項目に関する質問などをどうぞ。 メニューの「イベントの追加」のリンクがおかしいです。 - mod初心者 2017-05-20 21 26 17 ご指摘ありがとうございます。見事に製作の「製」の字を「制」にしておりました。修正しましたのでご確認ください。 - Tom Kate 2017-05-20 21 45 11 BlockPlacedEventですが、「== Blocks.air」ではなく「!= Blocks.air」だと思います。 - mod初心者 2017-05-30 17 23 56 「設置前のブロックが」空気ブロックであることを判定してますので問題ありません。 - Tom Kate 2017-05-30 19 23 53 ではこのイベントは何をするイベントなんですか? - mod初心者 2017-06-02 18 26 18 返信が遅くなってしまい申し訳ありません。PlaceEvent.placedAgainstは置き換えられたブロックではなく、ブロック設置直前に視線の先にあったブロックでした。本来、ダイヤモンドブロックを設置した時にキャンセルする、という処理を行いたかったため、正しいご指摘でした。少し処理を変更しましたので、ご確認ください。ご迷惑をおかけしてしまい、申し訳ありませんでした。 - 赤砂蛇凪浜 2017-06-14 19 15 35 こちらも説明不足ですみませんでした。大幅なコード修正ありがとうございました! - mod初心者 2017-06-16 19 03 04 List remover = new ArrayList();の型の設定やremover.addの括弧が多いような気がします。 - 名無しさん 2017-05-30 18 23 33 Entity型へのキャストを行っておりますので問題ありません。EclipseやIDEAなどでエラーが出ないかどうかご確認ください。 - Tom Kate 2017-05-30 19 25 56 remover.addのEntityMobの括弧足りなくてエラーになります。 - 名無しさん 2017-06-01 22 25 35 上のは解決しましたが、ListとArrayListの型は設定しなくて良いのでしょうか? - 名無しさん 2017-06-02 18 10 51 返信が遅くなってしまい申し訳ありません。ジェネリクスを利用しないとビルド時に警告が出ます。該当部分の処理方法を変更しましたが、同様のエラーは出ないよう修正しておきました。 - 赤砂蛇凪浜 2017-06-14 19 16 23 いつもこちらで勉強させていただいています。質問なのですが、下にあるブロックを掘ってアイテム化する(ドリルのように)というのは、どうすればいいのでしょうか。onDestroyByPlayerなどいろいろ試しましたが、壊れるのではなくて消えるようになってしまって困っています。 - 美羽 2017-06-04 09 47 06 返信が遅くなってしまい申し訳ありません。どのMODのドリルを指しているのかわかりませんが、アイテムを手に持ちブロックを右クリックした時の処理は、Itemを継承したクラスonItemUseを利用できます。また、ツルハシなどのように左クリック長押しによるブロック破壊の速度を上げたいのであれば、「ツール類の追加」を参考にしていただけると思います。onDestroyByPlayerという名のメソッドは見当たりませんでしたが、Block.onBlockDestroyedByPlayer(World, int, int, int, int)のことでしたら、ブロックがプレイヤーに破壊された時に呼ばれるメソッドです。ブロック破壊時のアイテムのドロップは、Block.harvestBlock(World, EntityPlayer, int, int, int, int)などを見ると分かるかもしれません。 - 赤砂蛇凪浜 2017-06-14 19 17 42 ありがとうございます。単に、下にあるブロックを破壊してアイテム化するブロックが作りたいのです - 美羽 2017-06-22 14 28 21 すみません、途中で書き込んでしまいました - 美羽 2017-06-22 14 29 02 Setblocktoairのように消えてしまうのではなく、つるはしで掘ったときのように徐々にひびが入って、破砕、アイテム化させたいです。 - 美羽 2017-06-22 14 35 06 返信が遅くなってしまい申し訳ありません。コメントのツリーを編集させていただきました。私も挑戦したことがないため、軽く調べてみましたが、間違っていたらすみません。ブロックのひび割れのレンダリングはRenderGlobalを通して行っているようです。drawBlockDamageTextureメソッドでレンダリングしているようですが、対象となるブロックはプレイヤーのEntityIDをキーとしたマップのdamagedBlocksで保持しており、ブロックやTileEntityからの介入は容易ではないと思います。 - 赤砂蛇凪浜 2017-07-08 18 29 55 名前
https://w.atwiki.jp/akasatanahama/pages/66.html
概要 新しいクリエイティブタブを追加する。 ソースコード AluminiumMod.java package tutorial.aluminiummod; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.registry.GameRegistry; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; @Mod(modid = AluminiumMod.MODID, name = AluminiumMod.MODNAME, version = AluminiumMod.VERSION) public class AluminiumMod { public static final String MODID = "AluminiumMod"; public static final String MODNAME = "Aluminium Mod"; public static final String VERSION = "1.0.0"; public static CreativeTabs tabAluminium = new AluminiumTab("Aluminiumtab"); public static Item aluminium; @EventHandler public void perInit(FMLPreInitializationEvent event) { aluminium = new Item() .setCreativeTab(AluminiumMod.tabAluminium) .setUnlocalizedName("aluminium") .setTextureName("aluminiummod aluminium"); GameRegistry.registerItem(aluminium, "aluminium"); } } AluminiumTab.java package tutorial.aluminiummod; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; public class AluminiumTab extends CreativeTabs { public AluminiumTab(String label) { super(label); } @Override public Item getTabIconItem() { return AluminiumMod.aluminium; } } 解説 CreativeTabs コンストラクタ(String label) 引数は表示されるクリエイティブタブの名前。 言語ファイルに itemGroup.Aluminiumtab=アルミニウム と記入すれば設定できる。 Item getTabIconItem() クリエイティブタブのアイコンとして表示するアイテムを返す。 オファレンMODでは、このメソッドを呼び出しているItemStack getIconItemStack()をオーバーライドすることでメタデータを変えている。 使用例 オファレンMODのクリエイティブタブを追加している部分。 +オファレンMOD OfalenModCore.java package nahama.ofalenmod; /*略*/ /** @author Akasata Nahama */ @Mod(modid = OfalenModCore.MODID, name = OfalenModCore.MODNAME, version = OfalenModCore.VERSION) public class OfalenModCore { public static final String MODID = "OfalenMod"; public static final String MODNAME = "Ofalen Mod"; public static final String VERSION = "[1.7.10]1.0.0"; /*略*/ /** 追加されたクリエイティブタブ */ public static final CreativeTabs tabOfalen = new OfalenTab("ofalentab"); /*略*/ } OfalenTab.java package nahama.ofalenmod.creativetab; import java.util.Random; import nahama.ofalenmod.core.OfalenModItemCore; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import cpw.mods.fml.relauncher.Side; import cpw.mods.fml.relauncher.SideOnly; public class OfalenTab extends CreativeTabs { private Random random = new Random(); private int count = 0; private int meta = -1; public OfalenTab(String label) { super(label); } /** アイコンの設定 */ @Override @SideOnly(Side.CLIENT) public ItemStack getIconItemStack() { if (count 1) { count = 100; meta++; if (meta 3) meta = 0; } else { count--; } return new ItemStack(OfalenModItemCore.ofalen, 1, meta); } @Override @SideOnly(Side.CLIENT) public Item getTabIconItem() { return null; } } コメント この項目に関する質問などをどうぞ。 タブをブロックにするときはどこをどのように変えれば良いのでしょう - さくら 2016-04-04 02 36 45 getTabIconItemの戻り値をItem.getItemFromBlock(block)にするか、getIconItemStackをオーバーライドするとできるかと思います。 - 赤砂蛇凪浜 2016-04-04 07 45 27 ありがとうございます! - さくら 2016-04-05 02 43 20 名前
https://w.atwiki.jp/stalker_soc/pages/71.html
字幕入り動画ファイル ~作中の動画に日本語字幕を埋め込んだもの。修正パッチのバージョン問わず使用可能です。 http //www.megaupload.com/?d=O6YLP1KY Stalker VideoCC Modを日本語化 ~Stalker VideoCC Mod を日本語化します color(red){注意!現行バージョン(1.11)は、1.0004以降の環境ではフリーズするため導入できません。(バージョンアップ待ち)}; → 上記字幕入り動画ファイルを使いましょう。; ~ Stalker VideoCC Mod ~導入には、ひらがな化が完全に動作している必要があります。 導入法(簡単) ~ Stalker VideoCC Mod をVideoCCのReadmeに則ってインストールします(英語ですが動作を確認するとベターです) #ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (stalker_videocc_v1.11_jp_070625.ZIP) ~(動作している環境に)このファイルを上書きします(これで日本語になります) 導入法(詳細) ~ Stalker VideoCC Mod をDL、解凍します ~日本語MODと同居させるため以下の三つのファイルを変更する必要があります。 ~(VideoCCMod)\gamedata\config\text\eng\ 以下にある ~stable_closecaption.xml ~stable_game_credits.xml ~ui_st_mm.xml ~下二つは、それぞれスタッフロール、GUIメニューのファイルですのでVideoCC Modのものをそのまま上書きで構いませんが ~GUIメニューの日本語を残したい場合は、日本語のui_st_mm.xmlの198行目に string id="ui_mm_play" text Play /text /string string id="ui_mm_play_video" text Movies /text /string ~以上を挿入し上書きしてください ~v1.11追記 更に記述が増えてる部分があります ~3行目に string id="no_GetGSVer_function" text ver. 1.0000 (or below) /text /string string id="ui_mm_playcc" text Subtitles /text /string ~stable_closecaption.xmlを日本語の物にしてください ~以上の物をインストールすることによって動作します。 表記について stable_closecaption.xml を、ひらがな化の表記ルールをベースとし、以下のサイトの「字幕表記のルール」を参考に、若干の修正をしました(07.06.18)。 http //www.con-can.com/blog/jp/project/subtitle/2007/06/43.html アップデート 07/06/25 V1.11対応 ↓旧バージョン(v1.10)用のファイル #ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (stalker_videocc_en_v1.10_JP_070618.zip) トラブルシューティング Q 日本語化の方を更新したら字幕が出なくなりました~ A 字幕MODのファイルが上書きされて消えてます~ stable_game_credits.xml ui_st_mm.xml~ この2つのファイルは必ず字幕MOD側のファイルを使用してください~ Q Barで「新米にアドバイス」だかを選ぶと落ちるんだけど~ A 半角中黒(・)が使われているためです。全角か三点リーダー(…)に置き換えましょう。
https://w.atwiki.jp/clubutakata/pages/159.html
1.日本語MODなしで即日本語を打てるようにする。 日本語MOD導入が難しい方は、まず上記から試してみましょう! 2.MODを通常通り導入してみる。 これは、Office Online の機能を利用した、Microsoft Office の埋め込み型のプレゼンテーションです。 MACをお使いの方へ 1.Windowsと一緒です。 2.日本語MOD CocoaInputをダウンロード URL http //forum.minecraftuser.jp/viewtopic.php?f=13 t=24394 3.modsファイルに入れる modsフォルダはマインクラフトforgeをインストールし一度起動しないとでて来ません。 MODSフォルダの場所は ~/ライブラリ\Application Support\minecraft\modsにあります ~/ライブラリを開くには、Finderのアイコンを右クリックし、フォルダーへ移動を選択して~/ライブラリと入力しましょう。 導入したあとは起動してみましょう! MAC項目協力_aqu_さん 以下広告
https://w.atwiki.jp/akasatanahama/pages/27.html
概要 新しい剣・シャベル・斧・ツルハシ・クワや、適正ブロックを自由に設定できるツールを追加する。 ソースコード AluminiumMod.java package tutorial.aluminiummod; import net.minecraft.creativetab.CreativeTabs; import net.minecraft.item.Item; import net.minecraft.item.Item.ToolMaterial; import net.minecraft.item.ItemHoe; import net.minecraft.item.ItemSpade; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemSword; import net.minecraftforge.common.util.EnumHelper; import cpw.mods.fml.common.Mod; import cpw.mods.fml.common.Mod.EventHandler; import cpw.mods.fml.common.event.FMLPreInitializationEvent; import cpw.mods.fml.common.registry.GameRegistry; @Mod(modid = AluminiumMod.MODID, name = AluminiumMod.MODNAME, version = AluminiumMod.VERSION) public class AluminiumMod { public static final String MODID = "AluminiumMod"; public static final String MODNAME = "Aluminium Mod"; public static final String VERSION = "1.0.0"; public static Item aluminium; public static Item swordAluminium; public static Item shovelAluminium; public static Item pickaxeAluminium; public static Item axeAluminium; public static Item hoeAluminium; public static Item toolAluminium; public static ToolMaterial ALUMINIUM; @EventHandler public void perInit(FMLPreInitializationEvent event) { aluminium = new Item() .setCreativeTab(CreativeTabs.tabMaterials) .setUnlocalizedName("aluminium") .setTextureName("aluminiummod aluminium"); GameRegistry.registerItem(aluminium, "aluminium"); ALUMINIUM = EnumHelper.addToolMaterial("ALUMINIUM", 3, 1000, 7.5F, 2.5F, 10) .setRepairItem(new ItemStack(AluminiumMod.aluminium)); swordAluminium = new ItemSword(ALUMINIUM) .setCreativeTab(CreativeTabs.tabCombat) .setUnlocalizedName("swordAluminium") .setTextureName("aluminiummod aluminium_sword"); GameRegistry.registerItem(swordAluminium, "swordAluminium"); shovelAluminium = new ItemSpade(ALUMINIUM) .setCreativeTab(CreativeTabs.tabTools) .setUnlocalizedName("shovelAluminium") .setTextureName("aluminiummod aluminium_shovel"); GameRegistry.registerItem(shovelAluminium, "shovelAluminium"); pickaxeAluminium = new AluminiumPickaxe(ALUMINIUM) .setCreativeTab(CreativeTabs.tabTools) .setUnlocalizedName("pickaxeAluminium") .setTextureName("aluminiummod aluminium_pickaxe"); GameRegistry.registerItem(pickaxeAluminium, "pickaxeAluminium"); axeAluminium = new AluminiumAxe(ALUMINIUM) .setCreativeTab(CreativeTabs.tabTools) .setUnlocalizedName("axeAluminium") .setTextureName("aluminiummod aluminium_axe"); GameRegistry.registerItem(axeAluminium, "axeAluminium"); hoeAluminium = new ItemHoe(ALUMINIUM) .setCreativeTab(CreativeTabs.tabTools) .setUnlocalizedName("hoeAluminium") .setTextureName("aluminiummod aluminium_hoe"); GameRegistry.registerItem(hoeAluminium, "hoeAluminium"); toolAluminium = new AluminiumTool(ALUMINIUM) .setCreativeTab(CreativeTabs.tabTools) .setUnlocalizedName("toolAluminium") .setTextureName("aluminiummod aluminium_tool"); GameRegistry.registerItem(toolAluminium, "toolAluminium"); } } AluminiumPickaxe.java package tutorial.aluminiummod; import net.minecraft.item.ItemPickaxe; public class AluminiumPickaxe extends ItemPickaxe { public AluminiumPickaxe(ToolMaterial toolMaterial) { super(toolMaterial); } } AluminiumAxe.java package tutorial.aluminiummod; import net.minecraft.item.ItemAxe; public class AluminiumAxe extends ItemAxe { public AluminiumAxe(ToolMaterial toolMaterial) { super(toolMaterial); } } AluminiumTool.java package tutorial.aluminiummod; import java.util.Set; import net.minecraft.block.Block; import net.minecraft.block.material.Material; import net.minecraft.init.Blocks; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemTool; import com.google.common.collect.Sets; public class AluminiumTool extends ItemTool { private static final Set canHarvestBlock = Sets.newHashSet(new Block[] { Blocks.diamond_block }); public AluminiumTool(ToolMaterial toolMaterial) { super(0.0F, toolMaterial, canHarvestBlock); } @Override public boolean func_150897_b(Block block) { return true; } @Override public float func_150893_a(ItemStack itemStack, Block block) { if (block.getMaterial() == Material.rock) { return this.efficiencyOnProperMaterial; } return super.func_150893_a(itemStack, block); } // ここにItemHoeのプログラムを張り付ければ、クワの効果も得られる。 } 解説 ToolMaterial ツールの性質を保持するためのenum。 ToolMaterial setRepairItem(ItemStack stack) 金床で修繕するための素材を設定するメソッド。 EnumHelper ToolMaterial addToolMaterial(String name, int harvestLevel, int maxUses, float efficiency, float damage, int enchantability) 新しくツールマテリアルを追加するためのメソッド。 引数は順に、ツールマテリアルの名前・回収レベル・最大耐久値・採掘速度・攻撃に使用したときのダメージ倍率・エンチャントの付きやすさ。 ダイヤモンドは、3, 1561, 8.0F, 3.0F, 10 Item public boolean func_150897_b(Block block) 引数のブロックを回収できるかを返す。 public float func_150893_a(ItemStack itemStack, Block block) 採掘速度を返す。 ItemToolでは、コンストラクタの第3引数のSetに登録されているブロックのときに適性時採掘速度を返している。 使用例 オファレンの万能ツールを追加している部分 +オファレンMOD OfalenModCore.java package nahama.ofalenmod; /*略*/ /** @author Akasata Nahama */ @Mod(modid = OfalenModCore.MODID, name = OfalenModCore.MODNAME, version = OfalenModCore.VERSION) public class OfalenModCore { public static final String MODID = "OfalenMod"; public static final String MODNAME = "Ofalen Mod"; public static final String VERSION = "[1.7.10]1.0.0"; /*略*/ /** 最初に行われる処理。アイテム・ブロックの追加などを行う */ @EventHandler public void preInit(FMLPreInitializationEvent event) { /*略*/ // アイテムを設定するメソッドを実行 OfalenModItemCore.registerItem(); /*略*/ } /*略*/ } OfalenModItemCore.java package nahama.ofalenmod.core; /*略*/ public class OfalenModItemCore { /*略*/ public static Item toolPerfectOfalen; /*略*/ /**アイテムを設定する*/ public static void registerItem () { /*略*/ toolPerfectOfalen = new OfalenPerfectTool(OfalenModMaterialCore.PERFECTT) .setUnlocalizedName("toolPerfectOfalen") .setTextureName("ofalenmod ofalen_perfect_tool"); GameRegistry.registerItem(toolPerfectOfalen, "toolPerfectOfalen"); /*略*/ } } OfalenPerfectTool.java package nahama.ofalenmod.item.tool; import nahama.ofalenmod.OfalenModCore; import net.minecraft.block.Block; import net.minecraft.entity.EntityLivingBase; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.init.Blocks; import net.minecraft.item.EnumAction; import net.minecraft.item.ItemStack; import net.minecraft.item.ItemTool; import net.minecraft.world.World; import net.minecraftforge.common.MinecraftForge; import net.minecraftforge.event.entity.player.UseHoeEvent; import cpw.mods.fml.common.eventhandler.Event.Result; public class OfalenPerfectTool extends ItemTool { public OfalenPerfectTool(ToolMaterial material) { super(0.0F, material, null); this.setCreativeTab(OfalenModCore.tabOfalen); } @Override public boolean func_150897_b(Block block) { return true; } /**採掘速度の設定*/ @Override public float func_150893_a(ItemStack itemStack, Block block) { //他のツールでは適正ブロックの判定をするが、ここではすべてに適正採掘速度を適用する return this.efficiencyOnProperMaterial; } //クワの処理 /**アイテムが使われた(右クリック)時の処理*/ @Override public boolean onItemUse(ItemStack itemStack, EntityPlayer entityPlayer, World world, int x, int y, int z, int side, float hitX, float hitY, float hitZ) { //プレイヤーが編集不可ならば if (!entityPlayer.canPlayerEdit(x, y, z, side, itemStack)) { //falseを返す return false; } else { //eventの登録 UseHoeEvent event = new UseHoeEvent(entityPlayer, itemStack, world, x, y, z); if (MinecraftForge.EVENT_BUS.post(event)) { return false; } if (event.getResult() == Result.ALLOW) { //ダメージを与える itemStack.damageItem(1, entityPlayer); return true; } //右クリックされたブロックを取得する Block block = world.getBlock(x, y, z); //右クリックされたブロックの上が空気ブロックで、右クリックされたブロックが草ブロックか土ブロックならば if (side != 0 world.getBlock(x, y + 1, z).isAir(world, x, y + 1, z) (block == Blocks.grass || block == Blocks.dirt)) { Block block1 = Blocks.farmland; //音を鳴らす world.playSoundEffect((double)((float)x + 0.5F), (double)((float)y + 0.5F), (double)((float)z + 0.5F), block1.stepSound.getStepResourcePath(), (block1.stepSound.getVolume() + 1.0F) / 2.0F, block1.stepSound.getPitch() * 0.8F); //クライアント側では何もせず if (world.isRemote) { return true; //サーバー側では } else { //ブロックを置き換えて world.setBlock(x, y, z, block1); //ダメージを与える itemStack.damageItem(1, entityPlayer); return true; } } else { return false; } } } //剣の処理 /**Entityを叩いたときの処理。ItemToolでは2のダメージをアイテムに与えるが、剣と同じように1与えるようにする。*/ @Override public boolean hitEntity(ItemStack itemStack, EntityLivingBase target, EntityLivingBase player) { itemStack.damageItem(1, player); return true; } @Override public EnumAction getItemUseAction(ItemStack itemStack) { return EnumAction.block; } @Override public int getMaxItemUseDuration(ItemStack itemStack) { return 72000; } @Override public ItemStack onItemRightClick(ItemStack itemStack, World world, EntityPlayer player) { player.setItemInUse(itemStack, this.getMaxItemUseDuration(itemStack)); return itemStack; } } Tips ここで、実装したツールに常時エンチャントを追加する方法を紹介する。 コードは、匠Craftの匠式ツールや対地雷ツールを参考にしていただきたい。 Itemをオーバーライドしたクラスに、以下のメソッドを追加する。 //アイテムに対して毎ティック呼ばれるメソッド。 //引数は、itemStack(アイテムと個数、メタデータ等をまとめたもの),world(ワールド),entity(持っているEntity),slot(現在あるスロット番号),isHeld(手持ちかどうか) public void onUpdate(ItemStack itemStack, World world, Entity entity, int slot, boolean isHeld) { //エンチャントされていないかどうかを確認する。 if (itemStack.isItemEnchanted() == false) { //エンチャントを付与する。引数はエンチャント,レベルの順に追加する。 itemStack.addEnchantment(TEnchantment.enchantmentMS, 1); } } これにより、常時効果を発揮するエンチャントや手に持ってるときに効果を発揮するものなどを実装できる。 コメント この項目に関する質問などをどうぞ。 アルミニウムツールが耐久値を保持しないのですが、、 - 名無しさん 2015-08-22 17 58 35 まだ編集が終わっていません。原因を調べ、テンプレートを使用して修正します。報告ありがとうございます - 赤砂蛇凪浜 2015-08-23 08 51 21 編集完了しましたが、こちらの環境では特に問題はありませんでした。解決できていない場合はもう一度コメントしてくださるとありがたいです。 - 赤砂蛇凪浜 2015-09-04 09 17 25 質問です。黄昏の森のstealeafでできるツールのようにもともとエンチャントがつくツールはどのようなコードにすればいいのでしょうか? - 名無しさん 2017-01-07 16 19 06 解決しました。 - 名無しさん 2017-01-22 10 08 12 方法を教えていただけませんか? - あるふぁ 2017-05-20 16 26 48 匠craftの「地雷除去」のように、新しいエンチャントをつける方法を解説していただけると助かります。 - あるふぁ 2017-05-20 18 53 49 追加いたしました、ご確認ください。 - Tom Kate 2017-05-22 19 34 58 すみません、伝わりにくかったと思います…匠craftの「地雷除去」のように、新しいエンチャントの”種類”を作る方法でした。 - あるふぁ 2017-05-23 20 15 17 エンチャント「追加」ですか。申し訳ありません。追加予定はありますがすぐにはできないと思いますのでご了承ください。 - Tom Kate 2017-05-23 20 26 53 どんなブロックでもクリエイティブの時のように即時破壊し、ドロップさせるツールは作れますか? - あるふぁ 2017-05-31 19 29 48 通常破壊可能なブロックを採掘したいのであれば、比較的容易に作れます。AluminiumTool.javaでの実装を応用し、func_150893_aで常にefficiencyOnProperMaterialを返せば、通常破壊可能なすべてのブロックを、適正採掘速度で破壊できます。さらに、EnumHelper.addToolMaterialの第四引数に大きな値を渡すことで、クリエイティブ以上の採掘速度を出すことが可能です。(1500以上であれば、通常時は黒曜石を最大速度で破壊できます。)岩盤のような破壊不可ブロックは、干渉できるイベントが見当たらないため、左クリック時に破壊することは簡単ではないと思います。アイテム使用時に呼ばれるonItemUseメソッドをオーバーライドすれば、右クリック時に岩盤を破壊し、ドロップさせるといった処理は可能です。 - 赤砂蛇凪浜 2017-06-01 17 50 09 ありがとうございます!実は返信が来る前に試行錯誤して解決してしまったのですが、参考になりました。 - あるふぁ 2017-06-01 18 38 38 こちらも「防具の追加」同様に、金床で修理することが出来ません。 - mod初心者 2017-06-17 12 48 38 ご指摘ありがとうございます。原因は「防具の追加」と同様です。修正しておきました。 - 赤砂蛇凪浜 2017-06-17 16 52 20 解決しました!ありがとうございました! - mod初心者 2017-06-19 17 19 34 参考になりました、ありがとうございます - 名無しさん 2017-08-04 19 14 19 名前
https://w.atwiki.jp/potyolove3/pages/50.html
入れてほしいなMOD 入れたいMODがありましたら MOD名 MODの説明 MODのURL を随時書き込んでください ExpandedRedstone MOB感知センサーやプレイヤー感知センサー レーダーブロック探知などなど イベントに使えそうなブロックが数々入ってます https //sites.google.com/site/reikasminecraft/expanded-redstone -- ポチョ (2015-01-26 20 44 16) 名前 コメント
https://w.atwiki.jp/megamander/pages/14.html
このサーバーの許可されているMODです。 TMI ダメージインジゲーター 日本語化MOD マップMOD 軽量化MOD 不安な人はそのMOD名を運営に伝えてください